// 7.2. 存储类-register存储类
/**
 * 存储类定义 C++ 程序中变量/函数的范围（可见性）和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类：
auto
register
static
extern
mutable
thread_local (C++11)

从 C++ 17 开始，auto 关键字不再是 C++ 存储类说明符，且 register 关键字被弃用。


翻译
register 登记簿;登记表;注册簿;声区;音区;(适合特定场合使用的)语体风格，语域
static 静止的;静态的;停滞的;静力的
extern 不住机构内的公共机构工作人员;(尤指)非住院医生，非住院的医院员工
mutable 可变的;会变的;易变的
thread_local 本地线程



register 存储类
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小（通常是一个词），且不能对它应用一元的 '&' 运算符（因为它没有内存位置）。
 * 
*/

#include <iostream>
#include <time.h>

int main(void)
{
  // register int miles;
  clock_t start, finish;
  double total_time;
  start = clock();

  int i;
  int num = 0;
  // register int i;
  // register int num = 0;

  for (i = 0; i < 1000; i++)
  {
    // std::cout << "num:\t" << num << '\n';
    num++;
  }

  finish = clock();
  total_time = (double)(finish - start); // 测不出来 ？？？
  // total_time = (double)(finish - start) / CLOCKS_PER_SEC; //单位换算成秒

  std::cout << "num:\t" << num << '\n'
            << "spend time:\t" << total_time << std::endl;

  printf("-------------end----------\n");
  return 0;
}